package com.demo.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.demo.pojo.entity.Grade;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 成绩Mapper接口
 */
@Mapper
public interface GradeMapper extends BaseMapper<Grade> {
    
    /**
     * 获取教师的成绩列表（带学生、课程、班级信息）
     */
    List<Map<String, Object>> getTeacherGradesWithDetails(@Param("teacherId") Long teacherId,
                                                           @Param("semester") String semester,
                                                           @Param("courseId") Long courseId,
                                                           @Param("clazzId") Long clazzId,
                                                           @Param("studentName") String studentName,
                                                           @Param("status") Integer status);
    
    /**
     * 获取教师在某学期教授的课程列表
     */
    List<Map<String, Object>> getTeacherCourses(@Param("teacherId") Long teacherId,
                                                @Param("semester") String semester);
    
    /**
     * 获取教师某课程的班级列表
     */
    List<Map<String, Object>> getCourseClasses(@Param("teacherId") Long teacherId,
                                               @Param("courseId") Long courseId,
                                               @Param("semester") String semester);
    
    /**
     * 获取班级的学生列表
     */
    List<Map<String, Object>> getClassStudents(@Param("clazzId") Long clazzId,
                                               @Param("courseId") Long courseId);
    
    /**
     * 获取学生的成绩列表（带课程、教师信息）
     */
    List<Map<String, Object>> getStudentGradesWithDetails(@Param("studentId") Long studentId,
                                                           @Param("semester") String semester);
}


